// 接口就是用来给对象及内部定义类型的方法

let obj = {
  a: 1,
  b: 2
}
// 对象写法，不管其内部有什么属性，这些属性是什么类型都不做任何验证，不专业
let obj1: object = {
  a: 1,
  b: 2
}

// 正常情况下可以使用这种方式来定义对象
// 但是如果该对象中有 10 个或者 更多个属性的时候
let obj2: {
  a: number;
  b: number;
  c: string;
} = {
  a: 1,
  b: 2,
  c: ''
}

// 接口的写法，内部是用来说明对象的每个属性的数据类型，关键字 interface
// 多个属性之间可以使用 , 隔开或者使用 ; 隔开，再或者说明都不写。如果你不知道
// 怎么写或者记不清怎么写的时候，那就干脆不写
// 如果有些属性不确定有还是没有的时候,我们可以加一个 ? 设置为可选属性
interface iObj {
  a: number
  b: number
  c?: string
}

// 正规定义对象类型
let obj3: iObj = {
  a: 10,
  b: 20,
  c: ''
}

// 接口： 接口就是为对象内部及属性定义类型用的
// 接口是为 对象 的数据类型而设计的一种类型注解的方式


// 如果是一个数组，那么我们又该如何设置其类型呢？
let list = [1,2,3,4,5, '你好']
